<?php

/**
 * Classe représentant une recette.
 * @author LESAGE Alexandre, BALMAND Clémence
 * @since 25 septembre 2013
 * @version 1.0
 */

class Recette
{
		/*Attributs*/
	/**
	 * Identifiant de la recette
	 * @var int
	 */
	private $_id;

	/**
	 * Action associée a la recette
	 * @var int
	 */
	private $_id_adc;

	/**
	 * Libelle de la recette
	 * @var string
	 */
	private $_libelle;

	/**
	 *  Budget de la recette
	 *  @var float
	 */
	private $_budget;
	
	/**
	 * Etudiant auteur de la recette
	 * @var int
	 */
	private $_auteur_recette;

	/*Constructeur */
	
	public function __construct()
	{
	$args = func_get_args();

	switch(func_num_args())
		{
			case 1 : // juste l'id de l'action.
				$this->set_id($args[0]);
				break;
			case 4 : // LIBELLE_RECETTE, BUDGET_RECETTE, ID_ADC_RECETTE, AUTEUR_RECETTE
				$this->set_libelle($args[0]);
				$this->set_budget($args[1]);
				$this->set_id_adc($args[2]);
				$this->set_auteur_recette($args[3]);
				break;
			default:
				trigger_error('Constructeur de Recette avec ' + func_num_args() + ' non défini.');
				break;
		}
	}
	/* Méthodes BDD */
	
	public static function getAllRecette($id_adc)
	{
		$bdd = PDO2::getInstance();
		$donnees = $bdd->query(	'SELECT '.ID_RECETTE.', '.LIBELLE_RECETTE.', '.BUDGET_RECETTE.', '.ID_ADC_RECETTE.', '.AUTEUR_RECETTE.'
				FROM '.TABLE_RECETTE.'
				WHERE '.ID_ADC_RECETTE.' = \''.$id_adc.'\'');
	
		if($donnees == false)
		{
			$donnees->closeCursor();
			return 0;
		}
		else 
		{
			$don = $donnees->fetchAll();
			$donnees->closeCursor();
			$r="";
			foreach($don as $d)
			{
				$r[] = new Recette($d[LIBELLE_RECETTE], $d[BUDGET_RECETTE], $id_adc, $d[AUTEUR_RECETTE]);
			}
			return $r;
		}
		
	}
	
	public static function getAllRecetteFromArchive($id_adc)
	{
		$bdd = PDO2::getInstance();
		$donnees = $bdd->query(	'SELECT '.ID_RECETTE.', '.LIBELLE_RECETTE.', '.BUDGET_RECETTE.', '.ID_ADC_RECETTE.', '.AUTEUR_RECETTE.'
				FROM '.TABLE_RECETTE.'_archive
				WHERE '.ID_ADC_RECETTE.' = \''.$id_adc.'\'');
	
		if($donnees == false)
		{
			$donnees->closeCursor();
			return 0;
		}
		else
		{
			$don = $donnees->fetchAll();
			$donnees->closeCursor();
			$r="";
			foreach($don as $d)
			{
				$r[] = new Recette($d[LIBELLE_RECETTE], $d[BUDGET_RECETTE], $id_adc, $d[AUTEUR_RECETTE]);
			}
			return $r;
		}
	
	}
	
	public function saveOneRecette()
	{
		$bdd = PDO2::getInstance();
		$result = $bdd->exec(
				'INSERT INTO '.TABLE_RECETTE.' ('.LIBELLE_RECETTE.', '.BUDGET_RECETTE.', '.ID_ADC_RECETTE.', '.AUTEUR_RECETTE.')
										VALUES ("'.$this->get_libelle().'", "'.$this->get_budget().'", "'.$this->get_id_adc().'", "'.$this->get_auteur_recette().'")');
	
		if($result == 0)
			return false;
		else
			return true;
	}
	
	public static function delAllRecetteADC($idADC)
	{
		$bdd = PDO2::getInstance();
		$result = $bdd->exec(
							'DELETE FROM '.TABLE_RECETTE.
								' WHERE '.ID_ADC_RECETTE." = ".$idADC		
				);
		if($result == 0)
			return false;
		else
			return true;
	}
	
	public static function delRecetteAuteurADC($idADC, $idAuteur)
	{
		$bdd = PDO2::getInstance();
		$result = $bdd->exec(
				'DELETE FROM '.TABLE_RECETTE.'
				 WHERE '.ID_ADC_RECETTE.' = '.$idADC.'
				 AND '.AUTEUR_RECETTE.' = '.$idAuteur
				
		);
		if($result == 0)
			return false;
		else
			return true;
	}

	/*Getters et Setters*/

	/**
	 * Fonction permettant de récupérer l'identifiant de la recette
	 * @return int
	 */
	public function get_id()
	{
		return $this->_id;
	}

	/**
	 * Fonction permettant de modifier l'identifiant de la recette
	 * @param int
	 */
	public function set_id($id)
	{
		$this->_id=$id;
	}
	
	/**
	 * Fonction permettant de récupérer l'id de l'action de communication associée
	 * @return int
	 */
	public function get_id_adc()
	{
		return $this->_id_adc;
	}
	
	/**
	 * Fonction permettant de modifier l'id de l'action de communication associée
	 * @param int
	 */
	public function set_id_adc($adc)
	{
		$this->_id_adc=$adc;
	}

	/**
	 * Fonction permettant de récupérer le libelle de la recette
	 * @return string
	 */
	public function get_libelle()
	{
		return $this->_libelle;
	}
	
	/**
	 * Fonction permettant de modifier le libelle de la recette
	 * @param string
	 */
	public function set_libelle($libelle)
	{
		$this->_libelle=$libelle;
	}

	/**
	 * Fonction permettant de récupérer le commentaire du forum
	 * @return string
	 */
	public function get_budget()
	{
		return $this->_budget;
	}
	
	/**
	 * Fonction permettant de modifier le commentaire du forum
	 * @param string
	 */
	public function set_budget($budget)
	{
		$this->_budget=$budget;
	}
	
	/**
	 * Fonction permettant de récupérer l'étudiant auteur de la recette.
	 * @access public
	 * @return Etudiants
	 */
	public function get_etudiant()
	{
		$e = new Etudiants($this->get_auteur_recette());
		$e->getOneEtudiant();
		return $e;
	}
	
	
	/**
	 * Fonction permettant de récupérer l'étudiant auteur de la recette
	 * @return int
	 */
	public function get_auteur_recette()
	{
		return $this->_auteur_depense;
	}
	
	/**
	 * Fonction permettant de modifier l'étudiant auteur de la recette
	 * @param int
	 */
	public function set_auteur_recette($auteur)
	{
		$this->_auteur_depense=$auteur;
	}
}


?>